/**
 * 
 */
package com.shifan.phone.action;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shifan.phone.common.Message;
import com.shifan.phone.common.Page;
import com.shifan.phone.common.Tools;
import com.shifan.phone.model.ProductTypeModel;
import com.shifan.phone.service.ProductTypeModelService;

/**
 * 产品类型Action
 * @author TangLei
 * @date 2018年12月5日 下午2:39:09
 * @version 1.0
 */
@Controller
@RequestMapping("/productType")
public class ProductTypeModelAction {
	//注入产品类型Service接口
	@Resource
	ProductTypeModelService productTypeModelService;
	
	/**
	 * 查询所有产品类行信息（包括根据条件查询）
	 * @param productType 产品类型对象
	 * @param page 分页对象
	 * @return map集合
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String,Object> findAll(ProductTypeModel productType,Page page){
		//给产品类型里面的分页对象赋值
		productType.setPages(page);
		//调用产品类型接口里面的查询的方法
		return productTypeModelService.findAll(productType);
	}
	
	/**
	 * 根据类型ID查询
	 * @param proTypeId 产品类型ID
	 * @return 产品类型对象
	 */
	@RequestMapping("/findById")
	@ResponseBody
	public ProductTypeModel findById(String proTypeId){
		//调用产品类型Service接口里面根据ID查询的方法
		return productTypeModelService.selectByPrimaryKey(proTypeId);
	}
	
	/**
	 * 增加或修改产品类型
	 * @param productType 产品类型对象
	 * @return 信息对象
	 */
	@RequestMapping("/saveOrUpdate")
	@ResponseBody
	public Message saveOrUpdate(ProductTypeModel productType){
		//创建一个Message对象
		Message mes = new Message();
		//定义一个变量
		int rows = 0;
		//判断类型ID是否为空
		if(Tools.isEmpty(productType.getProTypeId())){
			//调用产品类型Service接口里面增加的方法
			rows = productTypeModelService.insertSelective(productType);
		}else {
			//调用产品类型Service接口里面修改的方法
			rows = productTypeModelService.updateByPrimaryKeySelective(productType);
		}
		//判断
		if(rows > 0){
			//给message对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("操作成功!");
		}else {
			//给message对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("操作失败!");
		}
		//返回message对象
		return mes;
	}
	
	/**
	 * 删除
	 * @param proTypeId 产品类型ID
	 * @return 信息对象
	 */
	@RequestMapping("/deletes")
	@ResponseBody
	public Message deletes(String proTypeId){
		//创建一个message对象
		Message mes = new Message();
		//调用产品类型Service接口里面的删除的方法
		int rows = productTypeModelService.deleteByPrimaryKey(proTypeId);
		//判断
		if(rows > 0 ){
			//给message对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("删除成功!");
		}else {
			//给message对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("删除失败!");
		}
		return mes;
	}
	
	/**
	 * 查询所有类型名称和ID
	 * @return 类型对象集合
	 */
	@RequestMapping("/findAllNameOrId")
	@ResponseBody
	public List<ProductTypeModel> findAllNameOrId(){
		//调用类型Service接口里面的查询所有的名称和ID的方法
		return productTypeModelService.findAllNameOrId();
	}
}
